package com.ai.service.security;

import com.ai.common.CommonResponse;
import com.ai.entity.security.SysRole;
import com.ai.entity.security.SysRolePermissionRelation;
import com.ai.model.param.SysRolePermissionParam;
import com.ai.model.param.SysRoleRegionParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 角色-权限关联关系表 服务类
 * </p>
 *
 * @author chen
 * @since 2023-04-04 19:46:07
 */
public interface ISysRolePermissionRelationService extends IService<SysRolePermissionRelation> {

    CommonResponse<String> updateRolePermission(SysRolePermissionParam permissionParam);

    /**
     * 获取角色绑定的所有权限id
     * @param bindRoles 角色id
     * @param isAdmin  是否为管理员，管理员拥有所有权限
     * @return 权限id
     */
    List<Integer> getBindPermissionList(List<SysRole> bindRoles,boolean isAdmin);

    /**
     * 将区域绑定到指定的用户  --------- 区域绑定到角色，反向绑定
     * @param regionParam
     * @return
     */
    CommonResponse<String> bindUserToRegion(SysRoleRegionParam regionParam);

    /**
     * 根据权限id获取所有与之绑定的角色id
     * @param id
     * @return
     */
    List<Integer> getRolesByPerId(String id);

    /**
     * 管理区域人员关系
     * @param permissionId
     * @param bindUserRoleIds
     */
    boolean manageRegionUserRelation(String permissionId, List<Integer> bindUserRoleIds);
}
